#include "GRASP.h"
#include "FileCobertura.h"
#include <sys/time.h>

int main(int argc, char** argv){
	//FileCobertura::readXML();
	if(argc == 4){
		int p = atoi(argv[1]);
		double cobertura = atoi(argv[2]);
		char *file = argv[3];
		//char *file = argv[1];
		//char *file = (char *)"distancias.txt";
		//Solucao::isMaxDist = false;
		//puts("INTI");
		Solucao::loadEntrada(file, p, cobertura);
		//Solucao::printEntrada();
		//SolucaoGRASPPMedian::putRealSoluction();
		double alpha = 0.5;//atof(argv[2]);
		GRASP g(alpha, 5);
		g.start(NUM_ITER);
		//Calcula a diferen�a do tempo antes e depois das iteracoes do GRASP em milisegundos
		timeval dif;
		timersub(&g.tempoDepois, &g.tempoAntes, &dif);
		long tempo;
		if(dif.tv_usec != 0)
			tempo = dif.tv_sec*1000 + dif.tv_usec/1000;
		else
			tempo = dif.tv_sec*1000;
		printf("T: %ld\n", tempo);
		//g.s->print();
		FileCobertura::printInstancia(alpha, Solucao::V, p, cobertura, g.mediaTodas, g.mediaTempo, g.melhorTodas, g.piorTodas);

		//if(g.s != NULL){
		//	FileCobertura::writeXML(g.s, tempo);
		//	printf("Final: %s F: %d\n", g.s->print(), g.s->avaliacao);
		//}
	}else{
		puts("<usage: grasp p D inst>");
	}
}

